Pre-filtering is used in video encoding to remove undesirable noise from video sources. For example, a plurality of video frames are processed by a pre-filter to produce a plurality of filtered video frames. The plurality of video frames are then compressed by a video encoder. Without a pre filter, the noise degrades the performance of a video encoder by wasting a number of bits to represent the noise itself, and by introducing encoding artifacts such as blocking and ringing noise.
Existing pre-filtering solutions are implemented in two ways, as a finite impulse response filter operating over the entire frame in pixel space, or as a finite impulse response filter operating in temporal space over a selected region of fast motion discovered by means of a motion estimation operation. A finite impulse response filter converts an input sequence in pixel space into a filtered output sequence equal in number to the input sequence, by processing through a sequence of multiply-add operations.
Construction of a finite impulse filter solution implementing a specified frequency response requires construction of a finite set of taps representing the inverse Discrete Fourier Transform of the desired frequency response, substantially decreasing the possibility of constructing an arbitrary noise removal function.